#ifndef __LIB_AGORA_CLIENT_ISOURCE_H__
#define __LIB_AGORA_CLIENT_ISOURCE_H__


namespace AgoraClient
{

class ISource
{
public:
	virtual ~ISource(){};
	virtual void AddSamples(void *samples, unsigned int size) = 0;
	virtual void SetPosition() = 0;
	virtual void SetMaxBuffer() = 0;
	virtual int  GetFormat() = 0;
	virtual int  GetFrequence() = 0;
	virtual void SetFormat(int format) = 0;
	virtual void SetFrequence(int freq) = 0;
	virtual void SetSpacialInfo(int x, int y, int z, 
							 int velocityX, int velocityY, int velocityZ,
							 int dirX, int dirY, int dirZ) = 0;
	virtual void Start() = 0;
	virtual void Stop() = 0;
	virtual void Clear() = 0;
	virtual bool IsRunning() = 0;
};

}


#endif